বেস এবং ডেরাইভ ক্লাস

সি শার্পে (C#) বেস ক্লাস এবং ডেরাইভড ক্লাস ইনহেরিটেন্সের মাধ্যমে সম্পর্কিত থাকে। বেস ক্লাস হলো মূল ক্লাস, যেখান থেকে ডেরাইভড ক্লাস বৈশিষ্ট্য এবং মেথড উত্তরাধিকারী হিসেবে গ্রহণ করে। ইনহেরিটেন্সের মাধ্যমে বেস ক্লাসের সাধারণ বৈশিষ্ট্যগুলো বিভিন্ন ডেরাইভড ক্লাসে ব্যবহার করা যায়, যা কোড রিইউজ এবং সরলতা নিশ্চিত করে।

বেস ক্লাস (Base Class)

বেস ক্লাস হলো এমন একটি ক্লাস যা ডেরাইভড ক্লাসের জন্য একটি ব্লুপ্রিন্ট হিসেবে কাজ করে। ডেরাইভড ক্লাস ইনহেরিটেন্সের মাধ্যমে বেস ক্লাসের বৈশিষ্ট্য (প্রোপার্টি এবং মেথড) গ্রহণ করতে পারে। বেস ক্লাসকে parent class বা super class ও বলা হয়।

public class Animal
{
    public string Name;

    public void Eat()
    {
        Console.WriteLine("Eating...");
    }
}

উপরের উদাহরণে, Animal হলো বেস ক্লাস, যেখানে Name প্রোপার্টি এবং Eat() মেথড রয়েছে।

ডেরাইভড ক্লাস (Derived Class)

ডেরাইভড ক্লাস হলো এমন একটি ক্লাস, যা বেস ক্লাসের বৈশিষ্ট্য এবং মেথডগুলো ইনহেরিট করে। ডেরাইভড ক্লাসে নতুন বৈশিষ্ট্য এবং মেথডও যুক্ত করা যায়, যা শুধুমাত্র সেই ডেরাইভড ক্লাসের জন্য প্রযোজ্য। ডেরাইভড ক্লাসকে child class বা sub class ও বলা হয়।

ডেরাইভড ক্লাস তৈরি করার জন্য C# এ : চিহ্ন ব্যবহার করে বেস ক্লাসের সাথে সম্পর্ক স্থাপন করা হয়।

public class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine("Barking...");
    }
}

এখানে Dog হলো ডেরাইভড ক্লাস, যা Animal বেস ক্লাস থেকে ইনহেরিট করেছে। ফলে Dog ক্লাসে Eat() মেথড এবং Name প্রোপার্টি অ্যাক্সেসযোগ্য।

উদাহরণ: বেস এবং ডেরাইভড ক্লাস ব্যবহার

using System;

namespace InheritanceExample
{
    // বেস ক্লাস
    public class Animal
    {
        public string Name;
        
        public void Eat()
        {
            Console.WriteLine(Name + " is eating...");
        }
    }

    // ডেরাইভড ক্লাস
    public class Dog : Animal
    {
        public void Bark()
        {
            Console.WriteLine(Name + " is barking...");
        }
    }

    public class Cat : Animal
    {
        public void Meow()
        {
            Console.WriteLine(Name + " is meowing...");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Dog অবজেক্ট তৈরি এবং বৈশিষ্ট্য ব্যবহার
            Dog dog = new Dog();
            dog.Name = "Buddy";
            dog.Eat();    // Output: Buddy is eating...
            dog.Bark();   // Output: Buddy is barking...

            // Cat অবজেক্ট তৈরি এবং বৈশিষ্ট্য ব্যবহার
            Cat cat = new Cat();
            cat.Name = "Whiskers";
            cat.Eat();    // Output: Whiskers is eating...
            cat.Meow();   // Output: Whiskers is meowing...
        }
    }
}

আউটপুট

Buddy is eating...
Buddy is barking...
Whiskers is eating...
Whiskers is meowing...

বেস এবং ডেরাইভড ক্লাসের সুবিধা

  1. কোড পুনরায় ব্যবহারযোগ্যতা: ইনহেরিটেন্সের মাধ্যমে একবার বেস ক্লাস তৈরি করে, তার বৈশিষ্ট্য এবং মেথডগুলো বিভিন্ন ডেরাইভড ক্লাসে পুনরায় ব্যবহার করা যায়।
  2. কোডের সরলতা এবং গঠন: সাধারণ বৈশিষ্ট্যগুলো বেস ক্লাসে রেখে ডেরাইভড ক্লাসে নতুন বৈশিষ্ট্য যোগ করা যায়, যা কোডকে সুশৃঙ্খল এবং সহজ করে।
  3. কোডের রিডেবিলিটি: বেস এবং ডেরাইভড ক্লাসের মাধ্যমে ক্লাসের মধ্যে সম্পর্ক তৈরি হয়, যা কোডের রিডেবিলিটি বাড়ায়।

ওভাররাইডিং (Overriding)

ডেরাইভড ক্লাসে বেস ক্লাসের মেথড ওভাররাইড করার জন্য override কীওয়ার্ড ব্যবহার করা হয়। এজন্য বেস ক্লাসের মেথড virtual হিসেবে ঘোষণা করতে হয় এবং ডেরাইভড ক্লাসে ওভাররাইড করা হয়।

উদাহরণ: মেথড ওভাররাইডিং

public class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Animal makes a sound");
    }
}

public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Dog barks");
    }
}

এখানে Dog ক্লাসে MakeSound() মেথড ওভাররাইড করা হয়েছে।

উদাহরণ প্রোগ্রাম: ওভাররাইডিং সহ বেস এবং ডেরাইভড ক্লাস

class Program
{
    static void Main(string[] args)
    {
        Animal animal = new Animal();
        animal.MakeSound();  // Output: Animal makes a sound

        Dog dog = new Dog();
        dog.MakeSound();     // Output: Dog barks
    }
}

সারসংক্ষেপ

সি শার্পে বেস ক্লাস হলো মূল ক্লাস, যেখানে সাধারণ বৈশিষ্ট্য ও মেথড থাকে, এবং ডেরাইভড ক্লাস সেই বৈশিষ্ট্য ও মেথড উত্তরাধিকারী হিসেবে গ্রহণ করে। ইনহেরিটেন্সের মাধ্যমে কোড পুনরায় ব্যবহারযোগ্য হয় এবং সহজে সম্প্রসারণ করা যায়। ওভাররাইডিংয়ের মাধ্যমে ডেরাইভড ক্লাসে বেস ক্লাসের মেথড পুনঃসংজ্ঞায়িত করা যায়, যা পলিমরফিজম নিশ্চিত করে।

Content added By

আরও দেখুন...

Promotion